/**
  ******************************************************************************
  * @author     Chris
  * @since      2024/6/16 18:30
  *
  * @file       pd_timer_ch.h
  * @brief      Header file of timer channel hardware driver.
  *
  * @note       This file contains the timer channel object declaration.
  *
  * @warning    None.
  ******************************************************************************
  * Change Logs:
  *   Date          Author       Notes
  *   2024/6/16     Chris        the first version
  *
  ******************************************************************************
  */


#ifndef JLC_SKY_TIMER_CH_H
#define JLC_SKY_TIMER_CH_H

#include "pd_gpio.h"
#include "drivers.h"

typedef struct TimerChDef TimerCh;

struct TimerChDef {
    GPIO **gpios;
    uint8_t gpioSize;

    uint32_t *channels;
    uint8_t chSize;
};

extern const struct TimerChClass {
    TimerCh *(*build)(GPIO **gpios, uint8_t gpioSize, uint32_t *channels, uint8_t chSize);
} TimerChBuilder;

#endif //JLC_SKY_TIMER_CH_H
